import WS from '@/utils/socket'
import {
	openDoor,
	restartOpen
} from '@/api/user.js'
export default {
	data() {
		return {
			deviceId: '', // 设备id
			orderNo: '',
			socketInfo: {}, // socket推送的消息信息
			$ws: null
		}
	},
	onload() {
		this.openDoor()

	},
	onHide() {
		if (this.$ws) {
			this.$ws.close()
		}
	},
	beforeDestroy() {
		if (this.$ws) {
			this.$ws.close()
		}
	},
	methods: {
		// 取电
		async openDoor() {
			const res = await openDoor({
				deviceId: this.deviceId,
				backFlag: this.backFlag // 是否归还电池 0：否  1：是    （归还的时候传1）
			})
			if (res.code == 200) {
				this.orderNo = res.data.orderNo
				this.socketInfo = res.data

				this.socketInit()
			} else {
				this.confirm({
					content: res.msg || '操作失败！',
					showCancel: false
				}).then(res => {
					this.back()
				})
			}
		},
		// 点击开门取电后执行这里
		// 链接设备
		socketInit() {

			/* uni.showLoading({
				title: '正在连接设备',
				mask: true
			}) */

			let uri = `gzyh_device_result_` + this.orderNo

			this.$ws = new WS(uri)
			// 当显示打开几号仓门后，才会执行下面
			this.$ws.onNotify(uri, res => {
				console.log('收到消息了')
				console.log(res, 2222222222222222)
				if (res.code == 200 && res.data.state != -1) {
					console.log('%c 获取到secketInfo数据了', 'font-size:16px;color:red')
					console.log(res.data)
					this.$ws.send({
						msg: JSON.stringify({
							"code": 200,
							"topic": uri,
							"state": res.data.state
						})
					}) //告诉后台推送已收到
					this.isOPen = true
					this.socketInfo = res.data
					this.resultHandle(res)


				}
				uni.hideLoading()
			})
		},
		// 重新开门
		async restartOpen() {

			this.socketInit()
			const res = await restartOpen(this.socketInfo)
			if (res.code == 200) {
				this.socketInfo = res.data
			} else {
				this.confirm({
					content: res.msg,
					showCancel: false
				}).then(res => {
					this.back()
				})
			}

		}
	}
}
